home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 11
/
FM Towns Free Software Collection 11.iso
/
t_os
/
data
/
dora
/
doraview.plp
< prev
next >
Wrap
Text File
|
1995-08-13
|
74KB
|
2,835 lines
/************************************************************************
* 共通処理ルーチン *
*************************************************************************/
/* DORA?.TMP を削除する */
%DELDIRF{
delfile(TEMP2|{doradir.tmp});
delfile(TEMP2|{doratext.tmp});
delfile(TEMP2|{doratext.new});
delfile(TEMP2|{doraedt.tmp});
delfile(TEMP2|{escctr.log});
delfile(TEMP2|{temp.$a$});
delfile(TEMP2|{comtxt.tmp});
delfile(TEMP2|{comtree0.tmp});
delfile(TEMP2|{comtree.tmp});
delfile(TEMP2|{doradir_.tmp});
delfile(TEMP2|{doradir0.tmp});
delfile(TEMP2|{doradir1.tmp});
delfile(TEMP2|{_lzhdir.tmp});
delfile(TEMP2|{doramemo.bak});
};
/* ディクトリ一覧表示からの指定ファイル名取り出し */
%PickFile{
LineNo:= @xlinenum;
MemoLine:=@nolmemo(memono)-1;
line1:= @case (LineNo>MemoLine,
{Yes},
{
case(@getchar(@memo(memono,MemoLine,1),1,14)
={ }&&MemoLine>1,{Yes},
{im(@memo(memono,MemoLine-1,1))},,
{im(@memo(memono,MemoLine,1))})
},
{No},
{
case (LineNo<=0,
{Yes}, {im(@memo(memono,1,1))},
{No},
{
case(@getchar(@memo(memono,LineNo,1),1,14)
={ }&&LineNo>1,{Yes},
{im(@memo(memono,LineNo-1,1))},,
{im(@memo(memono,LineNo,1))})
});
});
case(@getchar(line1,1,2)={ }||@getchar(line1,1,2)={+ },
{Yes},{file1:=@subdir(logdir,@head(@getchar(line1,3),{ }))},,
{
case(@nochar(@subdir(logdir,@head(line1,{ })))<65,{Yes},
{display(@subdir(logdir,@head(line1,{ })));
file1:=@subdir(logdir,@head(line1,{ }))});
});
};
%l {case (level>9,{Yes},{im({_})},,{im(level)})};
%txldir {
[level]
%dtf TEMP2|{doradir}|@l|{.tmp};
%d1 @getline(dirlist,level+1,1);
%dv @case(DIVE,{Yes},{im({-r })},{No},{im({})});
%if @case(INFO, {Yes},{im({-i })},
{Def},{im({-i -F })},
{No},{im({})});
%st @case(STYPE,{u},{im({})},,{im({-}|STYPE|DORD|FORD|{ })});
%sdir @case(current=level||level>9,{Yes},{im(logdir)},,
{im(@head(d1,CRLF))});
case (DEBUG,{Yes},
{display({logdir=}|logdir|CRLF|{current=}|current|{ }|
{level=}|level|{ }|{dirlist=}|d1)});
setcdir(CDIR);
dispoff(!DEBUG);
/*command({txl }|dtf|{ -dir }|dv|st|if|sdir);*/
command({txl doratxl.set -dir }|dv|st|if|sdir|{ }|dtf);
dispoff({No});
case (logdir|CRLF=d1,
{No},
{
case (level,
0,
{dirlist:=sdir|CRLF|
@getline(dirlist,2)},
9,
{dirlist:=@getline(dirlist,1,9)|
sdir|CRLF},
,
{dirlist:=@getline(dirlist,1,level)|
sdir|CRLF|
@getline(dirlist,level+2);
});
});
};
%chkdirf{
[dir] /* 引数で指定されたディレクトリの情報があれば更新する */
case (dir,{all},
{
dirlist:=CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF;
DELDIRF;
},
,
{
var n [2];
var x [1];
n:=0;
loop ({
case (@getline(dirlist,n+1,1)=dir|CRLF,
{Yes},
{
txldir(n);x:=1;im({No})
},
{No},{n:=n+1;im(n<10)}
);
});
case(x=1,{No},{txldir(10)});
});
};
/************************************************************************
* ログ参照メイン処理 *
*************************************************************************/
%ViewLOG{
[logdir,memono,level]
case(DEBUG,{Yes},{display({ViewLOG(}|logdir|{)\n});
display({Btitle(}|Btitle|{)\n})});
InactMemo;
moveline:=1;
case (Btitle,
{BaC},
{ case (logdir,
{*BACKLOG},{BackLog1})
},
{BoD},
{
case (@filechk(LOG2|{board\title.txt}),
{Yes},{Viewlog2},
{No},
{footnote({title.txtが無いですよ!});
Btitle:={};wait(2);Viewlog1
});
},
{FiL},
{
case (@filechk(LOG2|{datalib\}|NET|{dlib.lst}),
{Yes},{Viewlog3},
{No},{footnote(NET|{dlib.lstが無いですよ!});
Btitle:={};wait(2);Viewlog1})
},
{NeW},
{
txldir(level);
case (@filechk(TEMP2|{doradir}|@l|{.tmp})={Yes} &&
@fileleng(TEMP2|{doradir}|@l|{.tmp})>0,
{Yes},
{
%lineno @noline(@read(TEMP2|{doradir}|@l|{.tmp}));
Viewlog4
},
{No},
{
case(DEBUG,{Yes},{display(logdir|{ は空です\n})});
footnote({ }|logdir|{ は空です});wait(1);
});
},
{ToD},{dayLOG(Todayfile)},
{LoG},{ReadFL},
{DeN},{ReadFL},
{MiL},{ReadFL},
{MaL},{Viewlog1},
,
{
txldir(level);
case (@filechk(TEMP2|{doradir}|@l|{.tmp})={Yes} &&
@fileleng(TEMP2|{doradir}|@l|{.tmp})>0,
{Yes},
{
%lineno @noline(@read(TEMP2|{doradir}|@l|{.tmp}));
Viewlog1
},
{No},
{
case(DEBUG,{Yes},{display(logdir|{ は空です\n})});
footnote({ }|logdir|{ は空です});wait(1);
});
});
DeleteMemo(memono);Btitle:={};
setcdir(CDIR);
};
/*伝言板&メール&本日のログ表示*/
%Mden {[LOGFILE]
%m1 memono;
InactMemo;case(@mlast>=m1,{Yes},{mclear(m1)});
case (@filechk(matubi),
{Yes},
{mread(matubi,m1);
mopen(m1,0,21,639,459,{w});
loop ({footnote({EXIT戻る削除更新伝言},{b});
waitx();
case (@xtype,
101,{InactMemo;Btitle:={};
FLG:={Return};im({No})},
201,{InactMemo;Btitle:={};
FLG:={Return};im({No})},
102,{InactMemo;im({No})},202,{InactMemo;im({No})},
103,delLOG, 203,delLOG,
104,{updLOG(m1)},204,{updLOG(m1)},
105,Gather, 205,Gather,
m1,{Gather},
,{im({Yes})}
)})
},
{No},{footnote(Name|{が見つかりません});
display(matubi|{が見つかりません});
wait(3);Btitle:={};});
};
/* 「ago」前の月日を「MMDD」の形式で返す */
%getMD{[ago]
var today[25];var MONTH[5];var DAY[5];
%plus {[DATA]
case(@nochar(DATA),
{1},{im({0}|DATA)},
{2},{im(DATA)}
)
};
%lastmonth{case(@plus(MONTH),
{01},{im({31})},{02},{im({31})},{03},{im({28})},
{04},{im({31})},{05},{im({30})},{06},{im({31})},
{07},{im({30})},{08},{im({31})},{09},{im({31})},
{10},{im({30})},{11},{im({31})},{12},{im({30})
})};
today:=@daylong;
MONTH:=@getchar(today,6,2); DAY :=@getchar(today,9,2);
case(DAY-ago<1,{Yes},{
loop({ DAY:=DAY+@lastmonth;
case(@plus(MONTH),
{01},{MONTH:=12;},
,{MONTH:=MONTH-1}
);
im(DAY-ago<1);
})});
DAY:=DAY-ago;
im(@plus(MONTH)|@plus(DAY))
};
%dayLOG {[LOGFILE]
var lastday[64];lastday:= @im(LOG2|NET|@getMD(1)|{.LOG});
var last2day[64];last2day:= @im(LOG2|NET|@getMD(2)|{.LOG});
%m1 memono;
var sakko[4];var Sakkon[3];var kareki[16];Sakkon:={};
case (@filechk(lastday) && lastday<>Todayfile,
{Yes},{sakko:={昨呼}},
{No},{
case (@filechk(last2day) && last2day<>Todayfile,
{Yes},
{sakko:={一昨}},
{No},{sakko:={ }
})
});
%TREE {
var a [6];
case (Sakkon,
{Yes},{kareki:={ 枯木 }},
,{kareki:={ 木 草 }
});
loop ({
SNDMSG({erande_f.snd});
footnote({ 戻る }|kareki|
{ },{b});
waitx();
a:=@case(@xtype,
102,{im({cancel})}, 202,{im({cancel})},
106,{ViewTRE2(m1,LOGFILE,{2})},
206,{ViewTRE2(m1,LOGFILE,{2})},
107,{ViewTRE2(m1,LOGFILE,{1})},
207,{ViewTRE2(m1,LOGFILE,{1})},
108,{ViewTRE2(m1,TEMP2|{doratext.tmp},{2})},
208,{ViewTRE2(m1,TEMP2|{doratext.tmp},{2})},
,{im({Yes})}
);
});
im(a={cancel}||a={Yes});
};
%CALlast{
delfile(TEMP2|{doratext.tmp});Sakkon:={Yes};
case (sakko,
{昨呼},{InactMemo;mclear(m1);mread(lastday,m1)},
{一昨},{InactMemo;mclear(m1);mread(last2day,m1)
});
InactMemo;madd(m1,@read(LOGFILE));
mwrite(TEMP2|{doratext.tmp},m1);
mopen(m1,0,21,639,459,{w});
case (ESCon={No},{No},{ESC});
im({Yes})
};
InactMemo;case(@mlast>=m1,{Yes},{mclear(m1)});
case (@filechk(LOGFILE),
{Yes},
{mread(LOGFILE,m1);
mopen(m1,0,21,639,459,{w});
case (ESCon={No},{No},{ESC});
loop ({
footnote({EXIT戻る削除更新コメント解石}|
{ESC TREE}|sakko|{98罫PROF},{b});
waitx();
case (@xtype,
101,{InactMemo;Btitle:={};
FLG:={Return};im({No})},
201,{InactMemo;Btitle:={};
FLG:={Return};im({No})},
102,{InactMemo;im({No})},
202,{InactMemo;im({No})},
103,delLOG, 203,delLOG,
104,{updLOG(m1)},204,{updLOG(m1)},
105,{COMMENT(m1)},205,{COMMENT(m1)},
106,ISH, 206,ISH,
107,{ESC}, 207,{ESC},
108,TREE, 208,TREE,
109,{case(sakko<>{ },
{Yes},{CALlast},{No},{im({Yes})})},
209,{case(sakko<>{ },
{Yes},{CALlast},{No},{im({Yes})})},
110,{JIS98(m1)},210,{JIS98(m1)},
111,{PROFILE(m1)},211,{PROFILE(m1)},
m1,{COMMENT(m1)},
,{im({Yes})}
)
})
},
{No},{footnote(Todayfile|{が見つかりません});
display(Todayfile|{が見つかりません});
wait(3);Btitle:={};
});
};
%ReadFL {var matubi[78];var Name[14];var malMth[4];
case (Btitle,
{LoG},{matubi:=@im(LOG2|NET|DAY2|DAY5|{.LOG});
Name:={今日のログ};dayLOG(matubi)},
{DeN},{matubi:=@im(RTTL2|NET|{_}|DAY2|{.GAT});
Name:={今月の伝言板};Mden(matubi)},
{MiL},{malMth:={今};matubi:=@im(RTTL2|NET|{_}|DAY2|{.MIL});
case (@filechk(matubi),
{No},{malMth:={先};
matubi:=@im(RTTL2|NET|{_}|DAY3|{.MIL});
case (@filechk(matubi),
{No},{malMth:={先々};
matubi:=@im(RTTL2|NET|{_}|DAY4|{.MIL})
})
});
Name:=malMth|{月のメール};dayLOG(matubi)});
};
/* ログファイル名の変更処理 */
%Rename1{
PickFile;
footnote({ファイル名を変更しています});
case (@body(line1,{<},{>})={DIR},
{Yes},
{
footnote({ディレクトリ名は変更できません});
wait(1);
},
{No},
{
SNDMSG({nyuryo_f.snd});
footnote({新しいファイル名を入力して下さい});
%file2 @input({新しいファイル名を入力して下さい},,
@tail(file1,{\}));
case (file2={}||file2=@tail(file1,{\})||
@filechk(@body(file1,,{\})|file2),
{No},
{
footnote({ファイル名を変更しています});
dispoff(!DEBUG);
command({rename }|file1|{ }|file2);
chkdirf(logdir);
});
});
im({Yes});
};
/* ログファイルの複写処理 */
%Copy1 {
PickFile;
footnote({ファイルを複写します});
case (@body(line1,{<},{>})={DIR},
{Yes},
{
footnote({ディレクトリは複写できません});
wait(1);
},
{No},
{
SNDMSG({erande_f.snd});
footnote({複写先を指定して下さい 複写元=}|file1);
setcdir(logdir);
%file2 @filesel;
%cdir1 @getcdir;
%cdir2 @dir2(cdir1);
case (file2={},
{No},
{
footnote({ファイルを複写します});
copyfile(LOGFILE,file2);
});
});
im({Yes});
};
%ESC2 {%cdir @getcdir;
case (memono+2=@mlast,
{Yes},{
footnote({メモ}|memono+2|{のESC制御記号をカット中です});
InactMemo;setcdir(CDIR);
delfile(TEMP2|{temp.$a$});
delfile(TEMP2|{escctr.log});
mwrite(TEMP2|{escctr.log},memono+2);
setcdir(CDIR);
case (DEBUG,{Yes},
{display({escctr -D}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{escctr.log })});
dispoff(!DEBUG);
command(CDIR2|{escctr -D}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{escctr.log});
command({dir});
dispoff({No});
case (@filechk(TEMP2|{escctr.log}),
{Yes},
{
mclear(memono+2);
mread(TEMP2|{escctr.log},memono+2);
mopen(memono+2,0,161,639,379);
%memomax @mlast;
var memono1 [2];
memono1:=memono+2;
loop ({
case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
memono1:=memono1+1;
im(memono1<=memomax);
});
mclose(1);
mopen(memono+1,0,241,639,459,{w});
},
{No} ,{display({ESCカット機能には ESCCTR.EXE がパスの通った}|
{ディレクトリに必要です\n});
wait(2);mopen(memono,0,21,639,459,{w});mclose(1)});
},
{No},{footnote({参照用のファイルをオープンしてからで無いと、}|
{この機能は使えません});wait(3);
});
setcdir(cdir)
};
%ESC3 {%cdir @getcdir;
%No @mlast;
footnote({メモ}|No|{のESC制御記号をカット中です});
InactMemo;setcdir(CDIR);
delfile(TEMP2|{temp.$a$});
delfile(TEMP2|{escctr.log});
mwrite(TEMP2|{escctr.log},No);
setcdir(CDIR);
case (DEBUG,{Yes},
{display({escctr -D}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{escctr.log })});
dispoff(!DEBUG);
command(CDIR2|{escctr -D}|TEMP2|{ -K}|TEMP2|{ }|TEMP2|{escctr.log});
command({dir});
dispoff({No});
case (@filechk(TEMP2|{escctr.log}),
{Yes},
{
mclear(No);
mread(TEMP2|{escctr.log},No);
mopen(No,0,161,639,379);
%memomax @mlast;
var memono1 [2];
memono1:=No;
loop ({
case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
memono1:=memono1+No;
im(memono1<=memomax);
});
mclose(1);
mopen(memono+1,0,241,639,459,{w});
},
{No} ,{display({ESCカット機能には ESCCTR.EXE がパスの通った}|
{ディレクトリに必要です\n});
wait(2);mopen(memono,0,21,639,459,{w});mclose(1)});
setcdir(cdir)
};
/* ボード「ログマークの追加処理」 */
%BChek {
%Chek @memo(memono);
%size @nochar(Chek)+@noline(Chek)*8;
var n[3];var y[size];n:={0};y:={};%cdir @getcdir;
dispoff(!DEBUG);
delfile(TEMP2|{doradir}|@l|{.tmp});
setcdir(CDIR);
command({txl -dir }|RTTL2|{ }|TEMP2|{doradir}|@l|{.tmp});
dispoff({No});
%Bdir @read(TEMP2|{doradir}|@l|{.tmp});
case ( @filechk(TEMP2|{_bchek.tmp}),
{Yes},
{delfile(TEMP2|{_bchek.tmp})}
);
footnote({<ログ>マークの処理中です[対象データ=}|@nochar(Chek)|{byte]});
display({<ログ>マークの処理中です[対象データ=}|@nochar(Chek)|{byte]\n});
loop ({ n:=n+1;line1:={};
case (n=15||n=25||n=35||n=50||n=70,
{Yes},{footnote({*マークの処理中です[}|@nochar(y)|
{byte]処理しました})
});
%a @getline(Chek,n,1);
case (a={},
{Yes},{im({No})},,
{var MesNo[80];MesNo:=@head(@body(a,{#}),{ });
%LOGF1 @im(NET|{_}|DAY2|{.}|MesNo);
%LOGF2 @im(NET|{_}|DAY3|{.}|MesNo);
%LOGF3 @im(NET|{_}|DAY4|{.}|MesNo);
case (@exist(Bdir,LOGF1)||@exist(Bdir,LOGF2)
||@exist(Bdir,LOGF3),
{Yes},
{InactMemo;
case (@getchar(a,1,4)={<ログ},
{Yes}, /* 変更なし */
{y:=y|a},
{No}, /* 変更あり */
{
case (@getchar(a,1,1)={#}||
@getchar(a,1,2)={*#}||
@getchar(a,1,2)={* },
{Yes},
{
case (@getchar(a,1,2)={* },
{Yes},
{line1:=@getchar(a,3)});
case (@getchar(a,1,4)={<ログ},
{Yes},
{line1:=@getchar(a,6)},
{No},
{line1:=@getchar(a,1)});
y:=y|{<ログ>}|line1
},
{No},{y:=y|a}
);
});
},
{No},
{InactMemo;
case (@getchar(a,1,2)={* }||
@getchar(a,1,4)={<ログ},
{Yes}, /* 変更あり */
{
case (@getchar(a,1,2)={* },
{Yes},
{line1:=@getchar(a,3)});
case (@getchar(a,1,4)={<ログ},
{Yes},
{line1:=@getchar(a,6)});
y:=y|line1},
{No}, /* 変更なし */
{y:=y|a}
);
});im({Yes})
});
});
InactMemo;mclear(memono);
%LISTbod @LINECUT(y);
madd(memono,LISTbod);
mopen(memono,0,21,639,459,{w});
LOGFILE:=@subdir(logdir,{title.txt});
};
/* ファイルボード看板「*マークの追加処理」 */
%FBChek {footnote({*マークの処理中です});
%Chek @memo(memono);
%size @nochar(Chek)+@noline(Chek);
var n[3];var y[size];n:={0};y:={};%cdir @getcdir;
dispoff(!DEBUG);
delfile(TEMP2|{doradir}|@l|{.tmp});
setcdir(CDIR);
command({txl -dir }|LOG2|{datalib\}|{ }|TEMP2|{doradir}|@l|{.tmp});
dispoff({No});
%FBdir @read(TEMP2|{doradir}|@l|{.tmp});
case ( @filechk(TEMP2|{_fbchek.tmp}),
{Yes},
{delfile(TEMP2|{_fbchek.tmp})}
);
loop ({ n:=n+1;
case (n=15||n=25||n=35||n=50||n=70,
{Yes},{footnote({*マークの処理中です[}|@nochar(y)|
{byte]処理しました})
});
%a @getline(Chek,n,1);
case (a={},
{Yes},{im({No})},,
{var MesNo[80];MesNo:=@head(@body(a,{#}),{ });
MesNo:=@im({#}|MesNo|{DLIB.DAT});
case (@exist(FBdir,MesNo),
{Yes},
{InactMemo;
case (@getchar(a,1,2)={* }||
@getchar(a,33,2)={* },
{Yes}, /* 変更なし */
{y:=y|a},
{No}, /* 変更あり */
{
case (@getchar(a,1,1)={#}||
@getchar(a,2,1)={#}||
@getchar(a,31,3)={- #},
{Yes},
{
case(@getchar(a,1,1)={#},
{Yes},{y:=y|{* }|a},
{No},
{
case(@getchar(a,2,1)={#},
{Yes},{y:=y|{* }|a},
{No},
{
%c @head(a,{ #});
y:=y|c|{* }|
@getchar(a,33)}
);
});
},
{No},{y:=y|a}
);
});
},
{No},
{InactMemo;
case (@getchar(a,1,2)={* }||
@getchar(a,33,2)={* },
{Yes}, /* 変更あり */
{
case (@getchar(a,1,2)={* },
{Yes},{%b @getchar(a,3);y:=y|b},
{No},{%c @head(a,{* });
y:=y|c|@tail(a,{* })}
);
},
{No}, /* 変更なし */
{y:=y|a}
);
});im({Yes})
});
});
InactMemo;mclear(memono);
%LISTlib @LINECUT(y);
madd(memono,LISTlib);
mopen(memono,0,21,639,459,{w});
LOGFILE:=@subdir(logdir,NET|{dlib.lst});
};
/* ファイルボード「*マークの追加処理」 */
%DLLChek{
%Chek @memo(memono);
%size @nochar(Chek)+@noline(Chek);
var n[3];var y[size];n:={0};y:={};%cdir @getcdir;
%Dldir LOG2|{アクセスdat\downrate.dat};
%Dll @case(@filechk(Dldir),{Yes},{im(@read(Dldir))},,{im({})});
footnote({*マークの処理中です[対象データ=}|@nochar(Chek)|{byte]});
display({*マークの処理中です[対象データ=}|@nochar(Chek)|{byte]\n});
case(DEBUG,{Yes},{display({downrate.datは以下の通り\n}|Dll|{です\n})});
case (@filechk(Dldir),
{Yes},
{
loop ({ n:=n+1;
case (n=50||n=100||n=150||n=200||n=250||
n=300||n=350||n=400,
{Yes},{footnote({*マークの処理中です[}
|@nochar(y)|{byte]処理しました})
});
%a @getline(Chek,n,1);
case (a={},
{Yes},{im({No})},,
{var dllNo[80];
case (@getchar(a,1,1)={ },
{Yes},{dllNo:=@getchar(a,8,12)},
,{dllNo:=@getchar(a,10,12)});
case (@exist(Dll,dllNo),
{Yes},
{InactMemo;
case (@getchar(a,1,2)={* },
{Yes}, /* 変更なし */
{y:=y|a},
{No}, /* 変更あり */
{y:=y|{* }|
@getchar(a,2)}
);
},
{No},
{InactMemo;
case (@getchar(a,1,2)={* },
{Yes}, /* 変更あり */
{y:=y|@getchar(a,2)},
{No}, /* 変更なし */
{y:=y|a}
);
});im({Yes})
});
});
InactMemo;mclear(memono);
case(DEBUG,{Yes},{display(y)});
madd(memono,y);
mopen(memono,0,21,639,459,{w});updLOG(memono);
},,{footnote({ダウンロード実績が無いのでファイル}|
{チェック出来ません});wait(2)}
);
};
/* *.LZHファイルの解凍処理 */
%Extract1{
PickFile;
footnote({圧縮形式ファイルの解凍を行います});
case (@tail(file1,{.})={LZH},
{No},
{
footnote({圧縮ファイルでないので解凍できません});
wait(1);
},
{Yes},
{
%file @head(file1,{.});
%cdir @getcdir;
setcdir(logdir);
SNDMSG({erande.snd});
footnote({解凍先のディレクトリに移動してキャンセルして下さい});
filesel;
footnote({圧縮ファイルを解凍しています});
InactMemo;
%cdir1 @getcdir;
%cdir2 @dir2(cdir1);
setcdir(cdir);
dispoff(!DEBUG);
command({LHA X -m1 }|file|{ }|cdir2);
chkdirf(cdir1);
setcdir(cdir);
});
im({Yes});
};
%dirname{
PickFile;
%lineh @head(line1,{ });
%dis @head(@getchar(lineh,1,14),{.});
%nck @case(@body(lineh,{\}),{},
{im(@head(@getchar(line1,34),{\n}))},,
{im(@head(@body(line1,{<DIR> }),{\n}))});
%fct @case(nck,{},{im({設定})},,{im({変更})});
footnote({ }|dis|{ の名前を}|fct|{します});
loop ({
SNDMSG({nyuryo_f.snd});
%a @plane(
{c識別子及び名前を入力してください\nc\n}|
{t 識別子 /xxxxxxxxxxxxxx\n}|
{t 名前 /xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}|
{\nc※ここで設定したの情報を常に使いたい場合は、\n}|
{c 情報表示の設定を定義ファイルにして保存してください\n}|
{\nc\n}|
{s / 設定 / 取消 },
dis,nck);
%dis @head(@getline(a,1,1),{\n});
%ncx @head(@getline(a,2,1),{\n});
%ok @head(@getline(a,3,1),{\n});
case (ok,
{ 1},
{
case (dis={},
{No},
{
%tfl CDIR2|{DORATXL.SET};
case (@filechk(tfl),
{No},
{
write(tfl,
{&情報表示 定義ファイルです}|CRLF);
});
%rtl @read(tfl);
case (nck,{},
{write(tfl,{!}|dis|{=}|ncx|CRLF)},,
{
case (ncx<>nck,
{Yes},
{
dispoff(!DEBUG);
command({copy }|tfl|{ }|
CDIR2|{DORATXL.BAK});
dispoff({No});
delfile(tfl);
write(tfl,
@replace(rtl,
{!}|dis|{=}|nck|CRLF,
{!}|dis|{=}|ncx|CRLF))
})
});
INFO:={Def};
chkdirf(logdir);
chkdirf(setdir);
});
im({No});
},
{ 2},{im({No})},
,{im({Yes})}
);
});
im({Yes});
};
/* TXF -dirの設定変更 */
%sortcag{
var Info [2];
var Dive [2];
var Dord [2];
var Ford [2];
%sitst {
case(STYPE,
{x},{im({ 特殊 })},{n},{im({ファイル名})},
{e},{im({拡張子})},{s},{im({サイズ})},
{d},{im({ 日付 })},{u},{im({非ソート })},
,{im({ 特殊 })});
};
Info:= @case(INFO,{Yes},{im({ 1})},{Def},{im({ 2})},
{No},{im({ 3})},,{im({ 1})});
Dive:= @YesNo(DIVE,{1});
Dord:= @case(DORD,{+},{im({ 1})},{-},{im({ 2})},,{im({ 1})});
Ford:= @case(FORD,{+},{im({ 1})},{-},{im({ 2})},,{im({ 2})});
loop ({
SNDMSG({erande_f.snd});
footnote({ログ参照時の条件を選択してください});
%a @plane(
{cログ参照時の条件を選択してください\n}|
{r 情報表示 /する/定義ファイル/しない\n}|
{r ディレクトリ再帰検索 /する/しない\n}|
{c ソート方法 現在 [}|@sitst|{]\n}|
{s / 特殊 /ファイル名/拡張子}|
{/サイズ/ 日付 /非ソート \n}|
{r ソート順序(ディレクトリ) /昇順/降順\n}|
{r ソート順序(ファイル) /昇順/降順\n}|
{c サイズソートの際のソート順序(ディレクトリ)及び、\n}|
{c 非ソートの際のソート順序の設定は意味を持ちません\n}|
{s / 設定 / 取消 },
Info,Dive,Dord,Ford);
Info:= @head(@getline(a,1,1),{\n});
Dive:= @head(@getline(a,2,1),{\n});
%sel1 @head(@getline(a,3,1),{\n});
Dord:= @head(@getline(a,4,1),{\n});
Ford:= @head(@getline(a,5,1),{\n});
%ok @head(@getline(a,6,1),{\n});
case (sel1,
{ 1},{STYPE:={x};im({Yes})},
{ 2},{STYPE:={n};im({Yes})},
{ 3},{STYPE:={e};im({Yes})},
{ 4},{STYPE:={s};im({Yes})},
{ 5},{STYPE:={d};im({Yes})},
{ 6},{STYPE:={u};im({Yes})});
case (ok,
{ 1},
{
INFO:= @case (Info,
{ 1},{im({Yes})},
{ 2},
{
%tfl CDIR2|{DORATXL.SET}; case (@filechk(tfl),
{No},
{
write(tfl,
{&情報表示 定義ファイルです}|CRLF);
});
im({Def})
},
{ 3},{im({No})},
,{im({Yes})}
);
DIVE:= @case (Dive,
{ 1},{im({Yes})},{ 2},{im({No})},
,{im({Yes})});
DORD:= @case (Dord,
{ 1},{im({+})},{ 2},{im({-})},
,{im({+})});
FORD:= @case (Ford,
{ 1},{im({+})},{ 2},{im({-})},
,{im({-})});
chkdirf({all});
im({No});
},
{ 2},{im({No})},
,{im(sel1!=0)}
);
});
im({Yes});
};
/* ディレクトリ表示と選択処理 */
%Viewlog1{
%TREE {
var a [6];
loop ({
SNDMSG({erande_f.snd});
footnote({ 戻る }|
{ 木 森 草 草々 }|
{ },{b});
waitx();
a:=@case(@xtype,
102,{im({cancel})}, 202,{im({cancel})},
106,{ViewTREE(memono,{2})},
206,{ViewTREE(memono,{2})},
107,{ViewTRE2(memono,logdir,{2})},
207,{ViewTRE2(memono,logdir,{2})},
108,{ViewTREE(memono,{1})},
208,{ViewTREE(memono,{1})},
109,{ViewTRE2(memono,logdir,{1})},
209,{ViewTRE2(memono,logdir,{1})},
,{im({Yes})}
);
});
im(a={cancel}||a={Yes});
};
loop ({
InactMemo;
case(@mlast>=memono,{Yes},{mclear(memono)});
case (@filechk(TEMP2|{doradir}|@l|{.tmp}),
{No},{txldir(level)}
);
madd(memono,@read(TEMP2|{doradir}|@l|{.tmp}));
mopen(memono,0,21,639,459,{r});SNDMSG({erande_f.snd});
footnote({EXIT戻る表示BkLg }|
{改名複写解凍TREE}|
{名前SORT},{b});
waitx();
case (@xtype,
memono,Select1,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{im({No})}, 202,{im({No})},
103,Select1, 203,Select1,
104,BackLog1, 204,BackLog1,
106,Rename1, 206,Rename1,
107,Copy1, 207,Copy1,
108,Extract1, 208,Extract1,
109,TREE, 209,TREE,
110,dirname, 210,dirname,
111,sortcag, 211,sortcag,
,{im({Yes})}
);
});
};
/* バックログの表示処理 */
%BackLog1{
footnote({バックログデータ取り込み中 しばらくお待ちください});
LOGFILE:=TEMP2|{BACKLOG.TMP};
delfile(LOGFILE);
writelog(LOGFILE);
%m1 memono;
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
sel1;
};
%sel1 {
%TREE {
var a [6];
loop ({
SNDMSG({erande_f.snd});
footnote({ 戻る }|
{ 木 草 }|
{ },{b});
waitx();
a:=@case(@xtype,
102,{im({cancel})},
202,{im({cancel})},
106,{ViewTRE2(m1,LOGFILE,{2})},
206,{ViewTRE2(m1,LOGFILE,{2})},
108,{ViewTRE2(m1,LOGFILE,{1})},
208,{ViewTRE2(m1,LOGFILE,{1})},
,{im({Yes})}
);
});
im(a={cancel}||a={Yes});
};
%UPDATE {
var a [6];
loop ({
SNDMSG({erande_f.snd});
footnote({ 戻る }|
{削除更新 }|
{ },{b});
waitx();
a:=@case(@xtype,
102,{im({cancel})}, 202,{im({cancel})},
106,delLOG, 206,delLOG,
107,{updLOG(m1)},207,{updLOG(m1)},
,{im({Yes})}
);
});
im(a={cancel}||a={Yes});
};
%EXTEND {
var a [6];
loop ({
SNDMSG({erande_f.snd});
footnote({ 戻る ESC }|
{解石PROF98罫 }|
{ },{b});
waitx();
a:=@case(@xtype,
102,{im({cancel})},202,{im({cancel})},
105,{ESC},205,{ESC},
106,ISH, 206,ISH,
107,{PROFILE(m1)},207,{PROFILE(m1)},
108,{JIS98(m1)},208,{JIS98(m1)},
,{im({Yes})}
);
});
im(a={cancel}||a={Yes});
};
mread(LOGFILE,m1);
mopen(m1,0,21,639,459,{w});
case (ESCon={No},{No},{ESC});
loop ({
SNDMSG({erande_f.snd});
footnote({EXIT戻る }|
{コメント TREE }|
{変更拡張},{b});
waitx();
case (@xtype,
101,{InactMemo;Btitle:={};FLG:={Return};im({No})},
201,{InactMemo;Btitle:={};FLG:={Return};im({No})},
102,{InactMemo;im({No})},202,{InactMemo;im({No})},
106,{COMMENT(m1)}, 206,{COMMENT(m1)},
109,{TREE}, 209,{TREE},
111,{UPDATE}, 211,{UPDATE},
112,{EXTEND}, 212,{EXTEND},
m1,{COMMENT(m1)},
,{im({Yes})}
);
});
};
/* 1ログファイルの表示処理 */
%Select1{
PickFile;
case(DEBUG,{Yes},{display({Select1(}|logdir|{)\n});
display({line1=}|line1|{\n})});
case (@body(line1,{<},{>})={DIR},
{Yes},
{
case (@head(line1,{ }),
{MAILLIST},{Btitle:={MaL}},
{FNEWS},{Btitle:={NeW}});
current:=current+1;
ViewLOG(@subdir(logdir,@head(line1,{ })),memono,level+1);
current:=current-1;
},
{No},
{
case (@tail(@head(line1,{ }),{.}),
{LZH},{ViewLZH(@subdir(logdir,@head(line1,{ })),
memono)},
{NAP},{ViewNAP(@subdir(logdir,@head(line1,{ })),
memono)},
{NPB},{ViewNAP(@subdir(logdir,@head(line1,{ })),
memono)},
,
{
LOGFILE:=@subdir(logdir, @head(line1,{ }));
%m1 memono;
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
case (@filechk(LOGFILE),
{Yes},{sel1},
{No},{im({Yes})}
);
});
});
case(FLG,{Return},{im({No})},,{im({Yes})})
};
/* タイトルモードでのボードディレクトリ表示と選択処理 */
%Viewlog2{
%m1 memono;
loop ({
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
%LISTbod @LINECUT(@read(LOG2|{board\title.txt}));
madd(m1,LISTbod);
mopen(m1,0,21,639,459,{r});SNDMSG({erande_f.snd});
case (ESCon={No},{No},{ESC});
footnote({EXIT戻る表示ESC *CHK},{b});
waitx();
case (@xtype,m1,Select2,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{Btitle:={};im({No})},202,{Btitle:={};im({No})},
103,Select2,
203,Select2,
104,{ESC;updLOG(m1);im({Yes})},
204,{ESC;updLOG(m1);im({Yes})},
105,{BChek;updLOG(m1);im({Yes})},
205,{BChek;updLOG(m1);im({Yes})},
,{im({Yes})}
)
})
};
/* タイトルモードでのファイルボードディレクトリ表示と選択処理 */
%Viewlog3{
LOGFILE:=@subdir(logdir,NET|{dlib.lst});
%m1 memono;
loop ({
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
%LISTlib @LINECUT(@read(LOG2|{datalib\}|NET|{dlib.lst}));
madd(m1,LISTlib);
mopen(m1,0,21,639,459,{r});SNDMSG({erande_f.snd});
case (ESCon={No},{No},{ESC});
footnote({EXIT戻る表示ESC *CHK},{b});
waitx();
case (@xtype,m1,Select3,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{Btitle:={};im({No})},202,{Btitle:={};im({No})},
103,Select3, 203,Select3,
104,{ESC;updLOG(m1);im({Yes})},
204,{ESC;updLOG(m1);im({Yes})},
105,{FBChek;updLOG(m1);im({Yes})},
205,{FBChek;updLOG(m1);im({Yes})},
,{im({Yes})}
)
})
};
/* news表示と選択処理 */
%Viewlog4{
%m1 memono;
loop ({
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
madd(m1,@read(TEMP2|{doradir}|@l|{.tmp}));
mopen(m1,0,21,639,459,{r});SNDMSG({erande_f.snd});
footnote({EXIT戻る表示改名 森 木 },{b});
waitx();
case (@xtype,memono,Select1,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{Btitle:={};im({No})},202,{Btitle:={};im({No})},
103,Select1, 203,Select1,
104,Rename1, 204,Rename1,
105,{ViewTRE2(memono,logdir,{2})},
205,{ViewTRE2(memono,logdir,{2})},
106,{ViewTREE(memono,{2})},
206,{ViewTREE(memono,{2})},
,{im({Yes})}
)
})
};
/************************************************************************
* 圧縮ファイルの表示処理 *
*************************************************************************/
%ViewLZH{
[lzhfile,memono]
var lv[2];lv:={L };
%lvdir {
dispoff(!DEBUG);
%cdir1 @getcdir;
setcdir(CDIR);
command({LHA }|lv|lzhfile|{ > }|TEMP2|{_lzhdir.tmp});
setcdir(cdir1);
dispoff({No});
};
loop ({
lvdir;
%lineno @noline(@read(TEMP2|{_lzhdir.tmp}));
InactMemo;
case (lineno>8,
{Yes},viewlzh1,
{No},{display(lzhfile|{ はありません\n});im({No})}
);
});
InactMemo;
};
/* 圧縮ファイル内容の表示と選択処理 */
%viewlzh1{
%TREE {
var a [6];
loop ({
SNDMSG({erande_f.snd});
footnote({ 戻る }|
{ 木 森 }|
{ },{b});
waitx();
a:=@case(@xtype,
102,{im({cancel})}, 202,{im({cancel})},
106,TreeLZH, 206,TreeLZH,
107,WoodsLZH, 207,WoodsLZH,
,{im({Yes})}
);
});
im(a={cancel}||a={Yes});
};
%clv {case(lv,{L },{lv:={V }},{V },{lv:={L }})};
%flv @case(lv,{L },{im({階層})},{V },{im({標準})});
case(@mlast>=memono,{Yes},{mclear(memono)});
madd(memono,@read(TEMP2|{_lzhdir.tmp},6,lineno-8));
mopen(memono,0,21,639,459,{r});
SNDMSG({erande_f.snd});
footnote({EXIT戻る }|flv|
{表示改名 解凍TREE }|
{ },{b});
waitx();
case (@xtype,
101,{FLG:={Return};im({No})},
201,{FLG:={Return};im({No})},
102,{im({No})}, 202,{im({No})},
104,{clv}, 204,{clv},
105,select1, 205,select1,
106,rename1, 206,rename1,
108,copy1, 208,copy1,
109,TREE, 209,TREE,
memono,select1,
,{im({Yes})}
);
};
/* 圧縮1ログファイルの表示処理 */
%select1{
PickFile;
%lzhfile1 @getchar(line1,3,12);
dispoff(!DEBUG);
%cdir1 @getcdir;
setcdir(CDIR);
command({del }|TEMP2|lzhfile1);
command({LHA E }|lzhfile|{ }|TEMP2|{ }|lzhfile1);
setcdir(cdir1);
dispoff({No});
case (@body(lzhfile1,{.}),
{NAP},{ViewNAP(TEMP2|lzhfile1,memono)},
{NPB},{ViewNAP(TEMP2|lzhfile1,memono)},
,
{
%m1 memono;
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
LOGFILE:=TEMP2|lzhfile1;
mread(TEMP2|lzhfile1,m1);
mopen(m1,0,21,639,459,{w});
loop ({
footnote({EXIT戻る削除更新コメント}|
{解石ESC 木 草 98罫},{b});
waitx();
case (@xtype,
101,{InactMemo;Btitle:={};
FLG:={Return};im({No})},
201,{InactMemo;Btitle:={};
FLG:={Return};im({No})},
102,{InactMemo;im({No})},
202,{InactMemo;im({No})},
103,delLZH, 203,delLZH,
104,updLZH, 204,updLZH,
105,{COMMENT(m1)}, 205,{COMMENT(m1)},
106,ISH, 206,ISH,
107,{ESC}, 207,{ESC},
108,{ViewTRE2(m1,LOGFILE,{2})},
208,{ViewTRE2(m1,LOGFILE,{2})},
109,{ViewTRE2(m1,LOGFILE,{1})},
209,{ViewTRE2(m1,LOGFILE,{1})},
110,{JIS98(m1)}, 210,{JIS98(m1)},
m1,{COMMENT(m1)},,{im({Yes})});
});
footnote({});
delfile(TEMP2|lzhfile1);
case(FLG,{Return},{im({No})},,{im({Yes})});
});
};
/* 圧縮ログファイル名の変更処理 */
%rename1{
PickFile;
footnote({ファイル名を変更します});
%file @case(lv,
{L },{im(@tail(file1,{\}))},
{V },{im(@replace(@head(line1,CRLF),{/},{\}))});
%path @body(file,,{\});
%file1 @tail(file,{\});
SNDMSG({nyuryo_f.snd});
footnote({新しいファイル名を入力して下さい});
%file2 @input({新しいファイル名を入力して下さい},,file1);
footnote({ファイル名を変更します});
case (file2={}||file2=file1,
{No},
{
setcdir(TEMP);
dispoff(!DEBUG);
%cdir1 @getcdir;
setcdir(CDIR);
case(lv,
{L },
{
case (@getchar(line1,1,2),{+ },
{
SNDMSG({okasi_f.snd});
footnote({ディレクトリ付きで格納されています});
wait(1);
footnote({});
},,
{
command({LHA E -x0 }|lzhfile|{ }|
TEMP2|{ }|file);
command({rename }|TEMP2|file|{ }|file2);
command({LHA D }|lzhfile|{ }|file);
command({LHA A -x1 }|lzhfile|{ }|
TEMP2|{ }|file2);
delfile(TEMP2|file2);
chkdirf(@body(lzhfile,,{\}));
})
},
{V },
{
command({LHA X -m1 }|lzhfile|{ }|TEMP2|{ }|file);
command({rename }|TEMP2|file|{ }|file2);
command({LHA D }|lzhfile|{ }|file);
command({LHA A -x1 }|lzhfile|{ }|
TEMP2|{ }|path|{\}|file2);
delfile(TEMP2|path|{\}|file2);
rmdir(TEMP2|path);
chkdirf(@body(lzhfile,,{\}));
});
setcdir(cdir1);
dispoff({No});
});
im({Yes});
};
/* 圧縮ログファイルの解凍処理 */
%copy1 {
PickFile;
footnote({ファイルを解凍します});
var file [64];
file:=@head(@getchar(line1,3,12),{ });SNDMSG({erande_f.snd});
footnote({解凍先のファイルを指定して下さい});
%file2 @filesel;footnote({ファイルを解凍します});
case(file2<>{},{Yes},
{
dispoff(!DEBUG);command({LHA E }|lzhfile|{ }|file);
case(file<>file2 && file2<>{*.*} && file2<>{},
{Yes},{command({ren }|file|{ }|file2)});
dispoff({No});
});
im({Yes});
};
/* 圧縮ファイル内容の表示と選択処理 */
%viewlzh1{
case(@mlast>=memono,{Yes},{mclear(memono)});
madd(memono,@read(TEMP2|{_lzhdir.tmp},6,lineno-8));
mopen(memono,0,21,639,459,{r});
SNDMSG({erande_f.snd});
footnote({EXIT戻る表示改名解凍 森 木 },{b});
waitx();
case (@xtype,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{Btitle:={};im({No})},202,{Btitle:={};im({No})},
103,select1, 203,select1,
104,rename1, 204,rename1,
105,copy1, 205,copy1,
106,WoodsLZH, 206,WoodsLZH,
107,TreeLZH, 207,TreeLZH,
memono,select1,
,{im({Yes})});
};
/* 1ログファイルの表示処理(ボードの場合) */
%Select2{
PickFile;
%BDlogS{
%m1 memono;
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
mread(LOGFILE,m1);
mopen(m1,0,21,639,459,{w});
loop ({
footnote({EXIT戻る削除更新コメント解石}|
{ 木 草 98罫PROF},{b});
waitx();
case(@xtype,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{im({No})},
202,{im({No})},
103,delLOG, 203,delLOG,
104,{updLOG(m1)},204,{updLOG(m1)},
105,{COMMENT(m1)},
205,{COMMENT(m1)},
106,ISH, 206,ISH,
107,{ViewTRE2(m1,LOGFILE,{2})},
207,{ViewTRE2(m1,LOGFILE,{2})},
108,{ViewTRE2(m1,LOGFILE,{1})},
208,{ViewTRE2(m1,LOGFILE,{1})},
109,{JIS98(m1)},209,{JIS98(m1)}, 110,{PROFILE(m1)},210,{PROFILE(m1)},
m1,{COMMENT(m1)},
,{im({Yes})}
);
});
};
var n[3]; n:=@head(@body(line1,{#}),{ });
LOGFILE:=@im(RTTL2|NET|{_}|DAY2|{.}|n);
case (@filechk(LOGFILE),
{Yes},
{BDlogS},
{No},
{
footnote(LOGFILE);wait(3);
LOGFILE:=@im(RTTL2|NET|{_}|DAY3|{.}|n);
case (@filechk(LOGFILE),
{Yes},
{BDlogS},
{No},
{
footnote(LOGFILE);wait(3);
LOGFILE:=@im(RTTL2|NET|{_}|DAY4|{.}|n);
case (@filechk(LOGFILE),
{Yes},
{BDlogS},
{No},{
footnote({今月~先々月分調査結果>このボードのログは有りません});wait(3);
footnote({RTTLC出力用ディレクトリの}|
{設定が正しいかをチェックして下さい});wait(2);
sayMES(memono,@head(@body(line1,{#}),{ }))
});
});
});
case(FLG,{Return},{im({No})},,{im({Yes})})
};
%Select3{
PickFile;
%FBDlogS{
%m1 memono;
InactMemo;
case(@mlast>=m1,{Yes},{mclear(m1)});
mread(LOGFILE,m1);
mopen(m1,0,21,639,459,{w});
case (ESCon={No},{No},{ESC});
loop ({
footnote({EXIT戻る削除更新ダウンESC *CHK},{b});
waitx();
case(@xtype,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{im({No})},
202,{im({No})},
103,delLOG, 203,delLOG,
104,{updLOG(m1)},204,{updLOG(m1)},
105,{COMMENT(m1)},205,{COMMENT(m1)},
106,{ESC},206,{ESC},
107,{DLLChek;im({Yes})},
207,{DLLChek;im({Yes})},
m1,{COMMENT(m1)},
,{im({Yes})}
);
});
};
var MesNo[4];MesNo:=@head(@body(line1,{#}),{ });
LOGFILE:=@im(LOG2|{datalib\#}|MesNo|{dlib.dat});
case (@filechk(LOGFILE),
{Yes},
{FBDlogS},
{No},
{
case (@exist(MesNo,{>})||@exist(MesNo,{<}),
{Yes},{footnote({ファイルボード行を指定してください});
wait(3)},
{No},
{footnote(LOGFILE|{がありません});
SNDMSG({erande_f.snd});
select ({ファイルボード#}|MesNo|{のデータ登録状況}|
{ダウンロード予約を},
Wtime4,,
{ す る },
{write(UP2|{doradown.ctl},
{filbord=}|MesNo|{;\n})},
{ しない },
);
});
});
case(FLG,{Return},{im({No})},,{im({Yes})});
};
/* 非圧縮ログファイルの削除処理 */
%delLOG {
footnote({ログファイルを削除します});
SNDMSG({kaknin_f.snd});
select ({現在表示しているログファイルを削除します},
Wtime4,{im({Yes})},
{ 削除する },
{
InactMemo;
delfile(LOGFILE);
txldir(0);
im({No})},
{ 削除しない },{im({Yes})}
);
};
/* 非圧縮ログファイルの更新処理 */
%updLOG {[memono]
footnote({ログファイルを更新します});
SNDMSG({kaknin_f.snd});
select ({現在表示しているログファイルを更新しワす},
Wtime4,{im({Yes})},
{ 更新する },
{
InactMemo;delfile(LOGFILE);
mwrite(LOGFILE,memono);
chkdirf(logdir);
im({No})},
{ 更新しない },{im({Yes})}
);
};
/* 圧縮モードのログファイルを削除する */
%delLZH {
footnote({ログファイルを削除します});
SNDMSG({kaknin_f.snd});
select({現在表示しているログファイルを削除します},
Wtime4,{im({Yes})},
{ 削除する },
{
InactMemo;
dispoff(!DEBUG);
command({LHA D }|lzhfile|{ }|lzhfile1);
dispoff({No});
im({No})},
{ 削除しない },{im({Yes})}
);
};
/* 圧縮モードのログファイルを更新する */
%updLZH {
footnote({ログファイルを更新します});SNDMSG({kaknin_f.snd});
select({現在表示しているログファイルを更新します},
Wtime4,{im({Yes})},
{ 更新する },
{
InactMemo;
dispoff(!DEBUG);
delfile(lzhfile1);
mwrite(lzhfile1,memono);
command({LHA U }|lzhfile|{ }|lzhfile1);
command({LHA }|lzhfile|{>}|TEMP2|{_lzhdir.tmp});
dispoff({No});
im({No})
},
{ 更新しない },{im({Yes})}
);
};
/************************************************************************
* コメントツリー表示処理 *
*************************************************************************/
/* 圧縮1ログファイルのコメントツリー(木)表示処理 */
%TreeLZH{
PickFile;
%lzhfile1 @getchar(line1,3,12);
dispoff(!DEBUG);
%cdir1 @getcdir;
setcdir(CDIR);
command({del }|TEMP2|lzhfile1);
command({LHA E }|lzhfile|{ }|TEMP2|{ }|lzhfile1);
setcdir(cdir1);
dispoff({No});
ViewTRE2(memono,TEMP2|lzhfile1,{2});
case(FLG,{Return},{im({No})},,{im({Yes})});
};
/* 圧縮複数ログファイルのコメントツリー(森)表示処理 */
%WoodsLZH{
ViewTRE2(memono,lzhfile,{2});
case(FLG,{Return},{im({No})},,{im({Yes})});
};
%ViewTREE{
[memono,flg]
PickFile;ViewTRE2(memono,file1,flg);
};
%ViewTRE2{
[memono,file,flg]
footnote({コメントツリー作成中 中断:[ESC] }|file);
%cdir @getcdir;
setcdir(CDIR);
case (DEBUG,
{Yes},
{
case (@tail(file,{.})={LZH},
{Yes},{command({rctd -T}|flg|{o }|TEMP|{ }|file)},
{No},{command({rct -T}|flg|{o }|TEMP|{ }|file)}
);
},
{No},
{
dispoff({Yes});
case (@tail(file,{.})={LZH},
{Yes},{command({rctd -DT}|flg|{o }|TEMP|{ }|file)},
{No},{command({rct -DT}|flg|{o }|TEMP|{ }|file)}
);
dispoff({No});
});
setcdir(cdir);
InactMemo;
case (@filechk(TEMP2|{comtree0.tmp}),
{Yes},
{
madd(memono+1,{});
mclear(memono+1);
mread(TEMP2|{comtree0.tmp},memono+1);
Viewtre1;
},
{No},
{
footnote({発言がありません});
wait(1);
});
};
/* コメントツリーからの発言指定(初回のみ) */
%Viewtre1{
mopen(memono+1,0,181,639,459,{r});
loop ({
case (Btitle,
{NeW}, {
footnote({EXIT戻る表示},{b});
waitx();
case (@xtype,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{im({No})}, 202,{im({No})},
103,{viewtree}, 203,{viewtree},
memono+1,{viewtree},
,{im({Yes})}
);
},,
{
footnote({EXIT戻る表示 木 草 },{b});
waitx();
case (@xtype,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{im({No})}, 202,{im({No})},
103,{viewtree}, 203,{viewtree},
106,{retree(2,memono+1)},
206,{retree(2,memono+1)},
107,{retree(1,memono+1)},
207,{retree(1,memono+1)},
memono+1,{viewtree},
,{im({Yes})}
);
});
});
DeleteMemo(memono+1);
dispoff(!DEBUG);
%cdir @getcdir;
setcdir(CDIR);
command({rctd -DelLzhFile});
setcdir(cdir);
dispoff({No});
case(FLG,{Return},{im({No})},,{im({Yes})});
};
%viewtree{
var lno1 [8];
%tempfile TEMP2|{comtxt.tmp};
lno1:= @xlinenum;
case (@mcheck==memono+1,
{Yes},
{
loop ({
dispoff(!DEBUG);
%cdir @getcdir;
setcdir(CDIR);
delfile(tempfile);
command({rct -lo }|TEMP|{ }|lno1);
setcdir(cdir);
dispoff({No});
InactMemo;
case(@mlast>=memono+2,{Yes},{mclear(memono+2)});
madd(memono+2,{});
mread(tempfile,memono+2);
mopen(memono+2,0,21,639,359,{w});
loop ({
case (@mcheck==0,
{Yes},
{mopen(memono+2,0,21,639,359,{w})}
);
case(Btitle,{NeW},
{vwtreNEW},,
{vwtreNML});
});
case(FLG,{Select},{im({Yes})},,{im({No})});
});
});
};
/*NEWS用VIEW*/
%vwtreNEW{
footnote({EXIT戻る表示 前 次 選択},{b});
waitx();
case (@xtype,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{FLG:={Exit};im({No})},
202,{FLG:={Exit};im({No})},
103,{case(@mcheck==memono+1,
{Yes},{lno1:=@xlinenum;FLG:={Select};im({No})},
{No},{InactMemo;im({Yes})})},
203,{case(@mcheck==memono+1,
{Yes},{lno1:=@xlinenum;FLG:={Select};im({No})},
{No},{InactMemo;im({Yes})})},
104,{case(lno1>1,{Yes},{lno1:=lno1-1});
FLG:={Select};im({No})},
204,{case(lno1>1,{Yes},{lno1:=lno1-1});
FLG:={Select};im({No})},
105,{case(lno1<@nolmemo(memono+1)-1,
{Yes},{lno1:=lno1+1});FLG:={Select};im({No})},
205,{case(lno1<@nolmemo(memono+1)-1,
{Yes},{lno1:=lno1+1});FLG:={Select};im({No})},
memono+1,{lno1:=@xlinenum;FLG:={Select};im({No})},
106,{COMMENT1(memono,@xlinenum)},
206,{COMMENT1(memono,@xlinenum)},
memono+2,{COMMENT1(memono,@xlinenum)},,{im({Yes})}
);
};
/*ノーマル用VIEW*/
%vwtreNML{
%EXTEND {
var a [6];
loop ({
SNDMSG({erande_f.snd});
footnote({ 戻る }|
{解石PROF98罫 }|
{ },{b});
waitx();
a:=@case(@xtype,
102,{im({cancel})}, 202,{im({cancel})},
106,{InactMemo;%LOGFILE tempfile;ISH;im({Yes});
},
206,{InactMemo;%LOGFILE tempfile;ISH;im({Yes});
},
107,{PROFILE(memono+2)},
207,{PROFILE(memono+2)},
108,{JIS98tre(memono+2)},
208,{JIS98tre(memono+2)},
,{im({Yes})}
);
});
im(a={cancel}||a={Yes});
};
footnote({EXIT戻る表示 前 次 コメント 木 草 拡張},{b});
waitx();
case (@xtype,
101,{Btitle:={};FLG:={Return};im({No})},
201,{Btitle:={};FLG:={Return};im({No})},
102,{FLG:={Exit};im({No})},
202,{FLG:={Exit};im({No})},
103,{case(@mcheck==memono+1,
{Yes},{lno1:=@xlinenum;FLG:={Select};im({No})},
{No},{InactMemo;im({Yes})})},
203,{case(@mcheck==memono+1,
{Yes},{lno1:=@xlinenum;FLG:={Select};im({No})},
{No},{InactMemo;im({Yes})})},
104,{case(lno1>1,{Yes},{lno1:=lno1-1});
FLG:={Select};im({No})},
204,{case(lno1>1,{Yes},{lno1:=lno1-1});
FLG:={Select};im({No})},
105,{case(lno1<@nolmemo(memono+1)-1,
{Yes},{lno1:=lno1+1});FLG:={Select};im({No})},
205,{case(lno1<@nolmemo(memono+1)-1,
{Yes},{lno1:=lno1+1});FLG:={Select};im({No})},
106,{COMMENT1(memono,@xlinenum)},
206,{COMMENT1(memono,@xlinenum)},
memono+1,{lno1:=@xlinenum;FLG:={Select};im({No})},
107,{retree(2,memono+1)},207,{retree(2,memono+1)},
108,{retree(1,memono+1)},208,{retree(1,memono+1)},
109,{EXTEND}, 209,{EXTEND},
memono+2,{COMMENT1(memono,@xlinenum)},,{im({Yes})}
);
};
/* コメントツリーの再作成 */
%retree {
[flg,memono]
var article [82];
var lineno [5];
lineno :=@case (@mcheck==memono,
{Yes},
{case(@xlinenum<1,{Yes},{im(1)},{No},{im(@xlinenum)})},
{No},{im(1)}
);
article:=@getline(@memo(memono),lineno,1);
article:=@tail(article,{┣});
article:=@tail(article,{┗});
case (@getchar(article,1,3),
{ },{article:=@getchar(article,4)},
{* },{article:=@getchar(article,4)}
);
InactMemo;
setcdir(CDIR);
case (DEBUG,
{Yes},{command({rct -LDT}|flg|{o }|TEMP)},
{No},
{
dispoff({Yes});
command({rct -LT}|flg|{o }|TEMP);
dispoff({No});
});
mclear(memono);
mread(TEMP2|{comtree0.tmp},memono);
mopen(memono,0,181,639,459,{w});
%moveline @noline(@head(@memo(memono),article));/*追加行*/
curline(moveline+10);curline(moveline); /*追加行*/
im({Yes});
};
/*ISHデータを解石する */
%ISH {%cdir @getcdir;
footnote({解石ファイルを保存するディレクトリに移動してキャンセルして下さい});
filesel;footnote({ISHデータ解石中});command({ISH }|LOGFILE);
setcdir(cdir)};
/************************************************************************
* 指定メモ内の98特殊文字をJIS文字に変換する *
*************************************************************************/
%JIS98 {
[memono]
%cdir @getcdir;
footnote({98特殊文字をJIS文字に変換中});
InactMemo;
delfile(TEMP2|{doratxf.old});
delfile(TEMP2|{doratxf.new});
mwrite(TEMP2|{doratxf.old},memono);
setcdir(CDIR);
command({txf -a -n @}|CDIR2|{98_jis.txf -i }|
TEMP2|{doratxf.old -o }|TEMP2|{doratxf.new});
setcdir(cdir);
mclear(memono);
mread(TEMP2|{doratxf.new},memono);
mopen(m1);
im({Yes});
};
%JIS98tre{
[memono]
%cdir @getcdir;
footnote({98特殊文字をJIS文字に変換中});
InactMemo;
delfile(TEMP2|{doratxf.old});
delfile(TEMP2|{doratxf.new});
mwrite(TEMP2|{doratxf.old},memono);
dispoff({No});
setcdir(CDIR);
command({txf -a -n @}|CDIR2|{98_jis.txf -i }|
TEMP2|{doratxf.old -o }|TEMP2|{doratxf.new});
setcdir(cdir);
mclear(memono);
mread(TEMP2|{doratxf.new},memono);
mopen(memono-1,0,181,639,459,{r});
mclose(1);
im({Yes});
};
/************************************************************************
* コメント作成処理 *
*************************************************************************/
/*発言行で有れば「発言行」を返す処理*/
%SendLine{[sendL]
case (@getchar(sendL,1,2)={発}&&@getchar(sendL,5,2)={者}||
@getchar(sendL,1,2)={送}&&@getchar(sendL,5,2)={者}||
@getchar(sendL,1,2)={発}&&@getchar(sendL,7,2)={者}||
@getchar(sendL,1,2)={送}&&@getchar(sendL,7,2)={者}||
@getchar(sendL,1,2)={書}&&@getchar(sendL,7,2)={人}||
@getchar(sendL,1,1)={S}&&@getchar(sendL,6,1)={r},
{Yes} ,{im({発言行})},
{No} ,{im({})});
};
/* 通常モードからのコメント作成処理 */
%COMMENT{
[memono]
%LineNo @xlinenum; /*カーソル位置の行数を返す*/
COMMENT2(memono,LineNo);
InactMemo;
mopen(memono,0,21,639,459,{w});
};
/* ツリーモードからのコメント作成処理 */
%COMMENT1{
[memono,lineno]
COMMENT2(memono+2,lineno);
InactMemo;
mopen(memono+1,0,181,639,459,{r});
mclose(1);
im({Yes});
};
/* コメント作成処理の振り分け */
%COMMENT2{[memono,LineNo]
%MemoLine @nolmemo(memono)-1; /*メモの総行数を返す*/
%cdir @getcdir;
setcdir(CDIR);
setcdir(cdir);
case (LineNo>MemoLine,
{No},{case (LineNo<=0,
{No},{
l1:=@getchar(@memo(memono,LineNo,1),1,80);
l5:=@getchar(@memo(memono,1,6),1,80);
})
});
case (LineNo>MemoLine,{No},{case(LineNo<4,
{No},{
l2:=@getchar(@memo(memono,LineNo-1,1),1,80);
l3:=@getchar(@memo(memono,LineNo-3,1),1,80);
l4:=@getchar(@memo(memono,LineNo+2,1),1,80);
l7:=@getchar(@memo(memono,LineNo+1,1),1,80);
})
});
case (@getchar(l1,11,12)={Private mail}||
@getchar(l1,1,6)={メール}||
@getchar(l1,11,13)={個人宛 お手紙},
{Yes},{footnote({カーソルを宛先IDに置いて下さい});wait(2)},
{No}, {
case (@getchar(l2,11,12)={Private mail}||
@getchar(l2,1,6)={メール}||
@getchar(l2,12,14)={メールボックス}||
@getchar(l2,14,14)={テキストメール}||
@getchar(l2,11,13)={個人宛 お手紙},
{Yes}, {resMAIL},
{No}, {
case (@getchar(l1,1,2)={伝}&&@getchar(l1,5,2)={板}||
@getchar(l1,1,2)={で}&&@getchar(l1,5,2)={ご}||
@getchar(l1,3,2)={発}&&@getchar(l1,6,2)={言}||
@getchar(l1,1,1)={G}&&@getchar(l1,6,1)={r}||
@getchar(l1,2,1)={G}&&@getchar(l1,7,1)={r}||
@getchar(l1,1,1)={G}&&@getchar(l1,6,1)={R}||
@getchar(l1,2,1)={G}&&@getchar(l1,7,1)={R}||
@getchar(l1,2,1)={G}&&@getchar(l1,9,1)={:}||
@getchar(l1,1,1)={G}&&@getchar(l1,8,1)={w},
{Yes}, {Gather},
{No}, {
case (@getchar(l1,9,4)={最後}&&@getchar(l1,15,4)={一言},
{Yes}, {LastWard},
{No}, {
case (@getchar(l1,6,1)={B}&&@getchar(l1,25,1)={K}||
@getchar(l1,6,1)={T}&&@getchar(l1,25,1)={K}||
@getchar(l1,6,1)={A}&&@getchar(l1,25,1)={K},
{Yes},
{
case (@getchar(l5,1,8)={ファイル},
{Yes},
{
case (@getchar(@head(l5,{パスワード},{・・・・・}),1,4)
={は設},
{Yes},
{downDLIB(@getchar(@head(l5,{#},{・・・}),1,3)
,NET,@getchar(l1,8,12))},
{No},
{downDLIB(@getchar(@head(l5,{#},{・・・}),1,3)
,@head(l5,{パスワード},{・・・・・}),
@getchar(l1,8,12))}
)
},
{No},
{case (@getchar(l5,1,4)={LIB:},
{Yes},{downDLIB(@getchar(l5,5,3),NET,
@getchar(l1,8,12))},
{No},
{
case (LineNo>4,
{Yes},
{l6:=@head(@tail(@memo(memono,1,
LineNo-4),{#},{・・・}),{ });
downDLIB(l6,NET,
@getchar(l1,8,12))},,
)
})
})
},
{No}, {
case (@getchar(l1,1,2)={ボ}&&@getchar(l1,7,2)={名}||
@getchar(l1,1,2)={ぼ}&&@getchar(l1,7,2)={名}||
@getchar(l1,1,1)={S}&&@getchar(l1,6,1)={o},
{Yes}, {sayMES(memono,@tail(l1,{#},{)}))},
{No}, {
case (Btitle<>{NeW}&&@getchar(l1,1,1)={#}&&@getchar(l1,5,1)={ }||
@getchar(l1,2,1)={#}&&@getchar(l1,6,1)={ },
{Yes}, {sayMES(memono,@getchar(l1,2,3))},
{No}, {
case (@getchar(l1,1,2)={発}&&@getchar(l1,5,2)={者}||
@getchar(l1,1,2)={送}&&@getchar(l1,5,2)={者}||
@getchar(l1,1,2)={発}&&@getchar(l1,7,2)={者}||
@getchar(l1,1,2)={書}&&@getchar(l1,7,2)={人}||
@getchar(l1,1,1)={S}&&@getchar(l1,6,1)={r},
{Yes}, {resMES},
{No}, {case (Btitle,
{NeW},{footnote({カーソルをファイル名に}|
{置いて下さい。})},
{MaL},{footnote({[EXIT]・[戻る]ボタンのみ}|
{有効です。})},
,{footnote({カーソルをボード名orファイル名 }|
{発言者行 or Gather >行に置いて下さい。})}
);wait(2)}
)} )} )} )} )} )} )});
im({Yes})};
/* コメント作成処理 */
%MAKEcom{[flagHED]
footnote({コメントを作成します});
OpenMemo(flagHED);
loop ({
footnote({終了取消参照清書CD辞参ESマトコメPROF},{b});
waitx();
case (@xtype,
101,{savememo}, 201,{savememo},
102,{cancel}, 202,{cancel},
103,{newmemo}, 203,{newmemo},
104,{rewrite}, 204,{rewrite},
105,{cddic}, 205,{cddic},
106,ESC2, 206,ESC2,
107,{addhndl(memono)},207,{addhndl(memono)},
108,{PROFILE(memono)},208,{PROFILE(memono)},
,{im({Yes})}
);
});
};
/* アップ用文書作成用メモをオープンする */
%OpenMemo{[flagHED]
InactMemo;
mopen(memono,0,21,639,240,{w});
mclose(1);
mclear(memono+1);
case (flagHED={伝言},
{No},{madd(memono+1,flagHED|{\n})},
{Yes},{
case (@filechk(UP2|{DENGO}),
{Yes},{madd(memono+1,@read(UP2|{DENGO}))},
{No},{madd(memono+1,{})
});
});
mopen(memono+1,0,241,639,459,{w});
};
/* コメント作成メモ中に『#9999 ハンドル』を追加する */
%addhndl{
[memono]
%LineNo @xlinenum; /*カーソル位置の行数を返す*/
addhndl1(memono,LineNo);
};
%addhndl1{
[memono,LineNo]
%MemoLine @nolmemo(memono)-1; /*メモの総行数を返す*/
%cdir @getcdir;
setcdir(CDIR);
setcdir(cdir);
InactMemo;
case (LineNo>MemoLine,
{No},{case (LineNo<=4,
{No},{
sl1:=@getchar(@memo(memono,LineNo,1),1,80);
})
});
case (@SendLine(sl1)={発言行},
{Yes},
{
case ( @filechk(TEMP2|{_addhndl.tmp}),
{Yes},{delfile(TEMP2|{_addhndl.tmp})});
case (LineNo-3>0,
{Yes},{
sl3:=@getchar(@memo(memono,LineNo-3,1),1,80);
%resID @strip(@head(sl1,{ [},{]}));
%reply @strip(@body(sl3,{:},{/}));
mwrite(TEMP2|{_addhndl.tmp},memono+1);
write(TEMP2|{_addhndl.tmp},{\n #}|reply|
{ }|resID|{さん\n});
mclear(memono+1);
mread(TEMP2|{_addhndl.tmp},memono+1);
mopen(memono+1,0,241,639,459,{w})},
{No},{})
},
{No},{footnote({カーソルを発言者行に置いて下さい。});wait(2)}
);
InactMemo;
};
/* CD辞書を検索する */
%cddic {
SNDMSG({kaknin_f.snd});
footnote({CD-ROMに辞書をセットしてください});
select({CD-ROMに辞書をセットしてください},
Wtime4,,
{ O K },
{
InactMemo;
%memono @mlast+1;
case (memono>9,
{Yes},
{footnote({これ以上メモを開けません});wait(1)},
{No},
{
madd(memono,{});
mopen(memono,0,161,639,379);
CDfind(memono);
});
},
{ いいえ },
);
footnote({});
InactMemo;
mopen(memono,0,21,639,240,{w});
%memomax @mlast;
var memono1 [2];
memono1:=memono+2;
loop ({
case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
memono1:=memono1+1;
im(memono1<=memomax);
});
mclose(1);
mopen(memono+1,0,181,639,459,{w});
im({Yes});
};
/* アップ文書作成をキャンセルする */
%cancel {
SNDMSG({kaknin_f.snd});footnote({作成中の文書を取消しますか?});
select({作成中の文書を取消しますか?},
Wtime4,{footnote({});im({Yes})},
{ は い },
{
InactMemo;
delfile(TEMP2|{doramemo.bak});
mwrite(TEMP2|{doramemo.bak},memono+1);
DeleteMemo(memono+1);
footnote({});
im({No})},
{ いいえ },{footnote({});im({Yes})}
);
};
/* アップ用文書を清書する */
%rewrite{
footnote({メモ}|memono+1|{を清書しています});
InactMemo;
%cdir @getcdir;
setcdir(CDIR);
delfile(TEMP2|{doratext.tmp});
delfile(TEMP2|{doratext.new});
mwrite(TEMP2|{doratext.tmp},memono+1);
dispoff(!DEBUG);
command({txf -f -i }|TEMP2|{doratext.tmp -o }|TEMP2|{doratext.new });
dispoff({No});
setcdir(cdir);
case (@filechk(TEMP2|{doratext.new}),
{Yes},
{
mclear(memono+1);
mread(TEMP2|{doratext.new},memono+1);
mopen(memono,0,21,639,240,{w});
%memomax @mlast;
var memono1 [2];
memono1:=memono+2;
loop ({
case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
memono1:=memono1+1;
im(memono1<=memomax);
});
mclose(1);
mopen(memono+1,0,241,639,459,{w});
},
{No},
{
display({清書機能には TXF.EXE がパスの通った}|
{ディレクトリに必要です\n});
wait(2);
mopen(memono,0,21,639,240,{w});
%memomax @mlast;
var memono1 [1];
memono1:=memono+2;
loop ({
case(memono1<=memomax,{Yes},{mclose(1);mopen(memono1)});
memono1:=memono1+1;
im(memono1<=memomax);
});
mclose(1);
mopen(memono+1,0,181,639,459,{w});
});
setcdir(cdir);
im({Yes});
};
/* 他のファイルを参照するためにメモを開く */
%newmemo{
case (@mlast==9,
{Yes},
{
footnote({メモ番号が一杯のため、新しいメモが開けません});
wait(2);
},
{No},
{
case(@mcheck!=0,{Yes},{mclose(1)});
%memono @mlast+1;
madd(memono,{\n});
mclear(memono);
%file1 @filesel;
case (file1<>{}&&@filechk(file1),
{Yes},{mread(file1,memono)}
);
mopen(memono,0,161,639,379);
});
im({Yes});
};
/* 伝言板(時差チャット)へのコメント作成処理 */
%Gather{
%savememo{rtCHK(memono+1);
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|{DENGO},memono+1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
mclose(3);InactMemo;mopen(memono,0,21,639,459,{w});im({No})
};
footnote({伝言板へのコメントを作成します});
MAKEcom({伝言});
};
/* 『最後の一言』へのコメント作成処理 */
%LastWard{
%LASTset{
case(@filechk(UP2|{SAIGO}),
{Yes},{delfile(UP2|{SAIGO});write(UP2|{SAIGO},sai)},
{No},{write(UP2|{SAIGO},sai)})};
footnote({注意;この機能はKMF版 RTBBS-NETのみ有効です});
%a @plane( {c最後の一言へのコメントをして下さい\n}|
{tコメント/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
);
%sai @head(@getline(a,1,1),{\n});%ok @head(@getline(a,2,1),{\n});
case (ok==1,{Yes},
{footnote({最後の一言へのコメントを作成します});
LASTset})
};
/* ヘッダフッタ作成処理 */
%makeHdFt{[mes]
var HeDa[140];var MiDL[58];var FuTa[65];
case (Futless,
{Yes},{FuTa:={}},
,{
case (FUTA={},
{No},{FuTa:=@SPP(FUTA,41,)},
{Yes},{
case (HedFut={},
{Yes},{FuTa:={}},
{No},{FuTa:={ }|ID|{ }|HanDLe}
);
});
});
case (resID<>{},
{Yes},
{
case (HedFut,
{Std},
{HeDa:=@im({#}|reply|{ }|resID|{さん})},
{Jap},
{HeDa:=@im({ }|HanDLe|{です。\n\n #}
|reply|{『}|Altitl|{』の発言で、\n }|
resID|{さん は書きました})},
{Als},
{HeDa:=@im(resID|{さん、}|Date|{『}|Altitl|
{』へのレスポンス})},
{art},
{var Lnet[5];var charNo[1];var n[1];
n:=1;
loop ({
%a @getchar(NET,n,1);
case (a,
{},{im({No})},
,{Lnet:=Lnet|@tosmall(a);
n:=n+1;im({Yes})
})
});
charNo:=@nochar(NET);
HeDa:=@im({ }|HanDLe|{です。\n\n}|{ In article <}|
reply|{@}|Lnet|{.}|mes|{>\n }|resIDno|{@}|Lnet|
{.rtbbs.or.jp (}|resID|{ ) さん writes:\n})
},
,);
},
{No},
{HeDa:={}
});
case (HedFut={} && FUTA={},
{Yes},{MiDL:={}},
{No},{MiDL:={\n\n\n }});
case (HeDa={} && FuTa<>{},
{Yes},{flagHED:=MiDL|FuTa},
{No},{
case (HeDa<>{} && FuTa={},
{Yes},{flagHED:=HeDa},
{No},{
case (HeDa<>{} && FuTa<>{},
{Yes},{flagHED:=HeDa|MiDL|FuTa},
{No},{flagHED:={}
});
});
});
};
/* ボードへのコメント作成処理 */
%resMES {
var forum[12]; var mes[3]; var reply[4];
%c1 @case(@nochar(l4)-12<=0,{Yes},{im(1)},{No},{im(@nochar(l4)-12)});
%Date @getchar(l7,11,8);
%title @tail(@getchar(l4,11,c1),{]:});
var ok[2];
%Altitl @getchar(l4,11,c1);
%resID @strip(@head(l1,{ [},{]}));
%resIDno@strip(@head(l1,{: },{ [}));
%savememo{
%cdir @getcdir;setcdir(CDIR);
mes:= @tail(l2,{#},{)});
%resp @head(@head(l1,{: },{ [}),{ });
reply:= @strip(@body(l3,{:},{/}));
loop ({
SNDMSG({nyuryo_f.snd});
%a @plane(
{cボードへのコメント\n}|
{tネット名 /xxxxxxxx\n}|
{cCUGボードの場合はネット名の代わりに\n}|
{cパスワードを入力して下さい\n}|
{tボード番号 /xxxx\n}|
{s /検索 \n}|
{tコメント元番号/xxxx\n}|
{tタイトル /xxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{c\n}|
{s / 登録 / メール / 取消 \n}|
{c通常のRESなら「登録」、メールの場合は「メール」ボタン\n}|
{cボード移動レスの場合は「検索」ボタン\n}|
{cメール送付時には”タイトル ”の入力を忘れずに\n}|
{tメール宛先 /xxxxxxxxx\n},
@SCANPW(mes),mes,reply,title,resp);
forum:= @head(@getline(a,1,1),{\n});
mes:= @head(@getline(a,2,1),{\n});
%sarch1 @head(@getline(a,3,1),{\n});
reply:= @head(@getline(a,4,1),{\n});
%title @head(@getline(a,5,1),{\n});
ok:= @head(@getline(a,6,1),{\n});
%resp @head(@getline(a,7,1),{\n});
case (sarch1,
{ 1},{MorL:={BoD};DeLog:={No};
%mes1 @MLserch(mes,MorL);
reply:={};
case (mes1,{},,,{mes:=mes1});DeLog:={};
im({Yes})
});
case (ok,
{ 1},
{
footnote({ボードへのコメントを作成します});
%file1 @crefile(UP,{res});
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|file1,memono+1);
mopen(memono+1,0,241,639,459,{w});
%res1 {forum=}|forum|{;mes=}|mes|{;reply=}|reply|
{;file=}|UP2|file1|{;title=}|title|CRLF;
write(UP2|{doraup.ctl},res1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
mclose(3);
InactMemo;
mopen(memono,0,21,639,459,{w});
im({No});
},
{ 2},
{
footnote({発言者へのメールを作成します});
%file1 @crefile(UP,{res});
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|file1,memono+1);
mopen(memono+1,0,241,639,459,{w});
%res1 {mail=}|resp|{;date=;}|
{file=}|UP2|file1|{;title=}|title|CRLF;
write(UP2|{doraup.ctl},res1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
mclose(3);
InactMemo;
mopen(memono,0,21,639,459,{w});
im({No});
},
{ 3},
);
});
};
var flagHED[230];
%m @nochar(title);
%Title @getchar(title,1,m-1);
makeHdFt(mes);
MAKEcom(flagHED);
};
/* ボードへの新規発言作成処理 */
%sayMES {[memono,mesno]
%savememo{
SNDMSG({nyuryo_f.snd});
%a @plane( {cボードへの新規発言\n}|
{tネット名 /xxxxxxxx\n}|
{cCUGボードの場合はネット名の代わりに\n}|
{cパスワードを入力して下さい\n}|
{tボード番号 /xxxxx\n}|
{tタイトル /xxxxxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
@SCANPW(mesno),mesno,
);
%forum @head(@getline(a,1,1),{\n}); %mes @head(@getline(a,2,1),{\n});
%title @head(@getline(a,3,1),{\n}); %ok @head(@getline(a,4,1),{\n});
case (ok,
{ 1},
{case (forum={}||mes={}||title={},
{Yes},{im({Yes})},
{No},{
footnote({ボードへの新規発言を作成します});
%file1 @crefile(UP,{res});
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|file1,memono+1);
mopen(memono+1,0,241,639,459,{w});
%res1 {forum=}|forum|{;mes=}|mes|{;reply=;}|
{file=}|UP2|file1|{;title=}|title|CRLF;
write(UP2|{doraup.ctl},res1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
mclose(3);
InactMemo;
mopen(memono,0,21,639,459,{w});
im({No})
})
},
{ 2},{im({Yes})})};
var flagHED[210];
%Title {};%Altitl {};%reply {};%resID {};
makeHdFt(mesno);
MAKEcom(flagHED);
};
/* メールへの返信作成処理 */
%resMAIL{
%c1 @case(@nochar(l4)-12<=0,{Yes},{im(1)},{No},{im(@nochar(l4)-12)});
%Date @getchar(l7,11,8);
%title @tail(@getchar(l4,11,c1),{]:});
%Altitl @getchar(l4,11,c1);
%resID @strip(@head(l1,{ [},{]}));
%resIDno{};
%reply @strip(@body(l3,{:},{/}));
%savememo{
%cdir @getcdir;setcdir(CDIR);
%mes @tail(l2,{#},{)});
%resp @head(@head(l1,{: },{ [}),{ });
SNDMSG({nyuryo_f.snd});
%a @plane( {cメールの返信\n}|
{t 送信先ID /xxxxxxxxx\n}|
{t タイトル /xxxxxxxxxxxxxxxxxxxx}|
{xxxxxxxxxxxxxxxxxxxx\n}|
{s / 登録 / 取消 \n},
@head(@head(l1,{: },{ [}),{ }),
{re*}|@head(@getchar(l4,11,c1),{\n})
);
%mail @head(@getline(a,1,1),{\n});
%title @head(@getline(a,2,1),{\n});
%ok @head(@getline(a,3,1),{\n});
case (ok,
{ 1},
{footnote({メールの返信を作成します});
%file1 @crefile(UP,{res});
case(@mcheck!=0,{Yes},{mclose(1)});
mwrite(UP2|file1,memono+1);
mopen(memono+1,0,241,639,459,{w});
%res1 {mail=}|mail|{;file=}|UP2|file1|{;title=}|title|CRLF;
write(UP2|{doraup.ctl},res1);
case(@mcheck!=memono+1,{Yes},{mopen(memono+1)});
mclose(3);InactMemo;mopen(memono,0,21,639,459,{w});
im({No})
},
{ 2},{im({Yes})}
,{im({Yes})})};
var flagHED[210];
%m @nochar(title);
%Title @getchar(title,1,m-1);
%mes {mail};
makeHdFt(mes);
MAKEcom(flagHED);
};
/* DLIBからのダウンロード制御文作成処理 */
%downDLIB{[LibNo,PASS,name]
display(PASS);
%downHLP{☆データファイルは既に取得済☆
[登録]ボタンを押しても「既に取得済」のコメントが出たのは
\nアクセスdat\DOWNRATE.DAT(ダウンロード記録)に同名のファイルダウン記録が
登録されているからです。あえて再度ファイルダウンを実行したい場合は
DOWNRATE.DATに記載されている同名のファイルダウン記録を削除して下さい。
};
var DataFile[64];
var DocFile[64];
var forum[8]; var libno[4]; var dataname[12];
var datafile[64];var docfile[64];
%name @strip(@body(name,,{.}))|{.}|@tail(name,{.});
case (@nochar(FSW),
0,
{
DataFile:=LOG2|{FREESOFT\}|name;
DocFile :=LOG2|{FREESOFT\}|@body(name,,{.})|{.ggg};
},
3,
{
DataFile:=FSW|name;
DocFile :=FSW|@body(name,,{.})|{.ggg};
},
,
{
DataFile:=FSW|{\}|name;
DocFile :=FSW|{\}|@body(name,,{.})|{.ggg};
});
%Dldir LOG2|{アクセスdat\downrate.dat};
%Dll @case(@filechk(Dldir),
{Yes},{im(@read(LOG2|{アクセスdat\downrate.dat}))},,{im({})});
loop ({SNDMSG({nyuryo_f.snd});
%a @plane( {cデータライブラリからのダウンロード\n}|
{t ネット名 /xxxxxxxx\n}|
{cCUGボードの場合はネット名の代わりに\n}|
{cパスワードを入力して下さい\n}|
{tライブラリ番号/xxxx\n}|
{tデータ名称/xxxxxxxxxxxx\n}|
{tダウンロードファイル/\n}|
{t 概要ファイル /\n}|
{rダウンロード予約 /予約 /保留 \n}|
{s / 登録 / 取消 / HELP \n},
PASS,LibNo,name,DataFile,DocFile);
forum:= @head(@getline(a,1,1),{\n});
libno:= @head(@getline(a,2,1),{\n});
dataname:=@head(@getline(a,3,1),{\n});
datafile:=@head(@getline(a,4,1),{\n});
docfile:=@head(@getline(a,5,1),{\n});
%reserv @head(@getline(a,6,1),{\n});
%ok @head(@getline(a,7,1),{\n});
case (ok,
{ 1},
{case ((datafile={}||@getchar(datafile,2,2)={:\})&&
@getchar(docfile,2,2)={:\},
{No},
{display({ファイル名はドライブ名からの}|
{パスで指定してください});im({Yes})},
{Yes},
{
case (@exist(Dll,name),
{Yes},
{
footnote({このデータファイルは既に}|
{取得済です[取消]ボタンを選択下さい});
wait(2);im({Yes})
},
{No},
{
case (forum<>{} && libno<>{} &&
dataname<>{} && datafile<>{},
{Yes},
{
footnote({制御文を登録します});
write(UP2|{doradown.ctl},
@RESERV(reserv)|{forum=}|forum|
{;libno=}|libno|{;dataname=}|
dataname|{;docfile=}|docfile|
{;datafile=}|datafile|{;\n});
case (@mcheck!=memono,
{Yes},{mopen(memono)}
);im({No});
},
{No},
{footnote({必要な項目指定が}|
{不足しています});
im({Yes})
});
});
});
},
{ 2},{im({No})},
{ 3},{HLPview(downHLP);im({Yes})},,{im({Yes})
});
});
};
/* NAPLPSファイル表示処理 */
%ViewNAP{[file,memono]
InactMemo;
naplps(file);
footnote({EXIT再現},{b});
loop ({
waitx();
case (@xtype,
101,
{
napend;
footnote({});
mopen(memono,0,21,639,459,{w});
im({No});
},
201,
{
napend;
footnote({});
mopen(memono,0,21,639,459,{w});
im({No});
},
102,{napend;naplps(file);im({Yes})},
202,{napend;naplps(file);im({Yes})},
,{im({Yes})}
);
});
im({Yes});
};
%CanCOMENT{
footnote({指定するディレクトリに移動してキャンセルして下さい});
};
/************************************************************************
* プロフィール参照、プロフィールダウンロード予約 *
*************************************************************************/
%PROFILE{
[m1]
%LineNo @xlinenum; /*カーソル位置の行数を返す*/
PROFILE1(m1,LineNo);
};
%PROFILE1{
[m1,LineNo]
%MemoLine @nolmemo(m1); /*メモの総行数を返す*/
%cdir @getcdir;
setcdir(CDIR);
setcdir(cdir);
InactMemo;
case (LineNo>MemoLine,
{No},{case (LineNo<=4,
{No},{
sl1:=@getchar(@memo(m1,LineNo,1),1,80);
})
});
case (@SendLine(sl1)={発言行},
{No},{footnote({カーソルを発言者行に置いて下さい。});wait(2)},
{Yes},
{
%id @head(@head(sl1,{: },{ [}),{ });
%prf LOG2|{PROFILE\}|id|{.PRF};
case (@filechk(prf),
{Yes},
{
madd(m1+1,{});
mread(prf,m1+1);
mopen(m1+1,0,181,639,459,{r});
loop ({
footnote({終了ESC },{b});
waitx();
case (@xtype,
{101},{im({No})},
{201},{im({No})},
102,{ESC3;im({Yes})},
202,{ESC3;im({Yes})},
,{im({Yes})}
);
});
DeleteMemo(m1+1);
},
{No},
{
/* PROFILE取得予約処理 */
footnote(id|{のプロフィール情報がありません。}|
{ダウンード予約をしますか?});
SNDMSG({erande_f.snd});
select (id|
{のダウンロード予約をおこないますか},
Wtime4,,
{ す る },
{write(UP2|{doradown.ctl},
{profile=}|id|{;\n})},
{ しない },
);
});
});
InactMemo;
im({Yes});
};
%SETDIR {
var TodayLoG[16];
case (@filechk(LOG2|NET|@getMD(0)|{.LOG}),
{Yes},{TodayLoG:={本日のログを読む};
Todayfile:=@im(LOG2|NET|@getMD(0)|{.LOG})},
{No},{
case (@filechk(LOG2|NET|@getMD(1)|{.LOG}),
{Yes},{TodayLoG:={昨日のログを読む};
Todayfile:=@im(LOG2|NET|@getMD(1)|{.LOG})},
{No},{TodayLoG:={本日のログ未取得};
Todayfile:={本日のログ}
})
});
footnote({参照するログファイルのディレクトリを指定してください});
SNDMSG({erande_f.snd});
case (RTTLC<>{},
{Yes},
{
case (VIEWLOG={},
{Yes},
{
select({参照するログディレクトリは?(*項目はRTTLC実行}|
{後有効です)},
Wtime4,{im(LOG)},
LOG,{Btitle:={};im(LOG)},
TodayLoG,
{Btitle:={ToD};im(@body(LOG2,,{\}))},
{バックログ},
{Btitle:={BaC};im({*BACKLOG})},
{NEWS情報を見る},
{Btitle:={NeW};im(LOG2|{fnews})},
{*RTTLC出力ディレクトリ},{im(RTTLdir)},
{*伝言板を読む},
{Btitle:={DeN};im(@body(LOG2,,{\}))},
{*ボードタイトルから選択},
{Btitle:={BoD};im(LOG2|{board})},
{ファイルボードタイトルから選択},
{Btitle:={FiL};im(LOG2|{datalib})},
{*電子メールを読む},
{Btitle:={MiL};im(@body(LOG2,,{\}))},
{一時的に指定},
{CanCOMENT;SNDMSG({erande_f.snd});filesel;
VIEWLOG:=@getcdir;
im(@getcdir);
},
{ 取消},
{im({});FLG:={Return}});
},
{No},
{
select({参照するログディレクトリは?(*項目はRTTLC実行}|
{後有効です)},
Wtime4,{im(LOG)},
LOG,{Btitle:={};im(LOG)},
TodayLoG,
{Btitle:={ToD};im(@body(LOG2,,{\}))},
{バックログ},
{Btitle:={BaC};im({*BACKLOG})},
{NEWS情報を見る},
{Btitle:={NeW};im(LOG2|{fnews})},
{*RTTLC出力ディレクトリ},{im(RTTLdir)},
{*伝言板を読む},
{Btitle:={DeN};im(@body(LOG2,,{\}))},
{*ボードタイトルから選択},
{Btitle:={BoD};im(LOG2|{board})},
{ファイルボードタイトルから選択},
{Btitle:={FiL};im(LOG2|{datalib})},
{*電子メールを読む},
{Btitle:={MiL};im(@body(LOG2,,{\}))},
VIEWLOG,{im(VIEWLOG)},
{一時的に指定},
{CanCOMENT;SNDMSG({erande_f.snd});filesel;
im(@getcdir);
},
{ 取消},
{im({});FLG:={Return}});
});
},
{No},
{
case (VIEWLOG={},
{Yes},
{
select({参照するログディレクトリは?(*項目はRTTLC実行}|
{後有効です)},
Wtime4,{im(LOG)},
LOG,{Btitle:={};im(LOG)},
TodayLoG,
{Btitle:={ToD};im(@body(LOG2,,{\}))},
{バックログ},
{Btitle:={BaC};im({*BACKLOG})},
{NEWS情報を見る},
{Btitle:={NeW};im(LOG2|{fnews})},
{*ボードタイトルから選択},
{Btitle:={BoD};im(LOG2|{board})},
{ファイルボードタイトルから選択},
{Btitle:={FiL};im(LOG2|{datalib})},
{*電子メールを読む},
{Btitle:={MiL};im(@body(LOG2,,{\}))},
{*伝言板を読む},
{Btitle:={DeN};im(@body(LOG2,,{\}))},
{一時的に指定},
{CanCOMENT;SNDMSG({erande_f.snd});filesel;
VIEWLOG:=@getcdir;
im(@getcdir);
},
{ 取消},
{im({});FLG:={Return}});
},
{No},
{
select({参照するログディレクトリは?(*項目はRTTLC実行}|
{後有効です)},
Wtime4,{im(LOG)},
LOG,{Btitle:={};im(LOG)},
TodayLoG,
{Btitle:={ToD};im(@body(LOG2,,{\}))},
{バックログ},
{Btitle:={BaC};im({*BACKLOG})},
{NEWS情報を見る},
{Btitle:={NeW};im(LOG2|{fnews})},
{*ボードタイトルから選択},
{Btitle:={BoD};im(LOG2|{board})},
{ファイルボードタイトルから選択},
{Btitle:={FiL};im(LOG2|{datalib})},
{*電子メールを読む},
{Btitle:={MiL};im(@body(LOG2,,{\}))},
{*伝言板を読む},
{Btitle:={DeN};im(@body(LOG2,,{\}))},
VIEWLOG,{im(VIEWLOG)},
{一時的に指定},
{CanCOMENT;SNDMSG({erande_f.snd});filesel;
im(@getcdir);
},
{ 取消},
{im({});FLG:={Return}});
});
});
};
/* 三ヵ月前迄を計算 */
var LOGFILE1 [64];var LOGFILE2 [64];var LOGFILE3 [64];
var DAY1[24];var DAY2[2];var DAY3[2];var DAY4[2];var DAY5[2];
DAY1:=@daylong;
DAY2:=@im(@getchar(DAY1,6,2));DAY5:=@im(@getchar(DAY1,9,2));
case (DAY2,
{01},{DAY3:={12};DAY4:={11}},{02},{DAY3:={01};DAY4:={12}},
{03},{DAY3:={02};DAY4:={01}},{04},{DAY3:={03};DAY4:={02}},
{05},{DAY3:={04};DAY4:={03}},{06},{DAY3:={05};DAY4:={04}},
{07},{DAY3:={06};DAY4:={05}},{08},{DAY3:={07};DAY4:={06}},
{09},{DAY3:={08};DAY4:={07}},{10},{DAY3:={09};DAY4:={08}},
{11},{DAY3:={10};DAY4:={09}},{12},{DAY3:={11};DAY4:={10}}
);
/* 受信ログ参照処理メイン */
var fn [64];var l1 [82];var l2 [82];
var l3 [82];var l4 [82];var l5 [82];
var l6 [120];var l7 [82];var sl1 [82];
var sl3 [82];var DOCFILE [64];var DATAFILE[64];
var LOGFILE [64];var LineNo [6];var MemoLine [6];
var line1 [128];var file1 [64];var Todayfile[76];
var current [2];
var dirlist [640];
current:=0;
dirlist:=CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF|CRLF;
FLG:={};
footnote({受信ログを参照します});
%memono @mlast+1;
loop ({
%setdir @SETDIR;
case(setdir,{},,,{DELDIRF;ViewLOG(setdir,memono,0);DELDIRF});
case(FLG,{Return},{im({No})},,{im({Yes})});
});